package com.itcam.cm.manager.service;

import com.itcam.cm.model.dto.system.LoginDto;
import com.itcam.cm.model.dto.system.SysMenuVo;
import com.itcam.cm.model.dto.system.SysUserDto;
import com.itcam.cm.model.entity.system.SysUser;
import com.itcam.cm.model.vo.system.LoginVo;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface SysUserService {

    /**
     * 处理用户登录请求
     * @param loginDto
     * @return
     */
    LoginVo login(LoginDto loginDto);

//    LoginVo login(LoginDto loginDto, String ip);

    /**
     * 根据传入的 token 获取用户信息
     * @param token
     * @return
     */
    SysUser getUserInfo(String token);

    PageInfo<SysUser> getSysUserListByPage(Integer page, Integer limit, SysUserDto sysUserDto);

    /**
     * 保存系统用户信息
     * @param sysUser
     */
    void saveSysUser(SysUser sysUser);

    void updateSysUser(SysUser sysUser);


    /**
     * 处理用户退出登录的请求
     * @param token
     */
    void logout(String token);

    /**
     * 分页查询系统用户信息
     * @param sysUserDto
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<SysUser> findByPage(SysUserDto sysUserDto, Integer pageNum, Integer pageSize);

    /**
     * 根据id删除用户
     * @param userId
     */
    void deleteById(Long userId);
}
